The development of the EDVAC computer system of 1948 is often cited as the beginning of the computer era. Since that time, computer systems have evolved into extremely sophisticated devices that may be found in many different settings. Computer systems typically include a combination of hardware (e.g., semiconductors, circuit boards, etc.) and software (e.g., computer programs). As advances in semiconductor processing and computer architecture push the performance of the computer hardware higher, more sophisticated computer software has evolved to take advantage of the higher performance of the hardware, resulting in computer systems today that are much more powerful than just a few years ago.
One of the most important developments in making computers not only more powerful, but easier to use, was the development of sophisticated user interfaces. Early computer systems were programmed with a series of switches or buttons and provided little relevant feedback during the operation of the computer system. This type of interface proved cumbersome and, accordingly, increasingly more functional and interactive interfaces were developed to extend the functionality of computer systems.
One very popular user interface, that ultimately gained widespread adoption on many different computer systems, was the “command line interface.” Using a command line interface, the user interacted with the computer system by typing a specific command on a keyboard to instruct the computer regarding the, desired operation to be performed. The command line interface was not intuitive, however, and still limited the use of computers to those who had the time and desire to learn a large number of relatively cryptic commands.
Recognizing the growing need for a more user-friendly interface, computer engineers and programmers developed the Graphical User Interface (GUI). A GUI uses visual representations of common items to allow a user to operate a computer system. In most GUI-based systems, various icons, symbols, menus, etc. are manipulated or activated by a computer user via a pointing device (e.g., a mouse, a trackball, or trackpad), which allows the user to give instructions to the computer. The movement of the pointing device is usually translated to the movement of an animated arrow or cursor, displayed on the computer screen. By moving the mouse or other pointing device, the user can position the cursor at various locations on the computer screen. Then, by activating a button on the mouse, the user can invoke various commands and options.
The various graphical elements of a GUI are usually designed to be somewhat consistent and self-explanatory, thereby making it as easy as possible for a typical user to perform common computer system functions. Over a period of several years, many visual components of GUI-based systems have become fairly standardized and most graphical interfaces have specific elements which have become somewhat universal. For example, almost all GUI-based systems employ pull-down menus, scroll bars, button bars, and windows.
One use of these GUI elements is for the display of data that changes over time. A common way to display data that changes over time is a line chart, with time on a horizontal axis and the numeric values of the points of data on a vertical axis, so that different heights of the lines in the chart correspond to different numeric values of the data. For example, CPU or disk utilization in a computer system over time is commonly displayed in a line chart. Unfortunately, with multiple data points (e.g., both CPU and disk utilization displayed on the same chart), each data point having its own line, the line chart quickly becomes cluttered. Various techniques have been attempted to deal with this problem, such as giving each data point its own color or its own line format, such as a solid line versus a dotted line versus a dashed line. But as more data points are added, these techniques quickly lose their effectiveness.
To further exacerbate these problems, some data that changes over time is not so easily distilled to a simple numeric value for display on a line chart. For example, over time, a user may add, delete, and rename directories, sub-directories, and files in a file system. Or, a system administrator may, over time, add or change clients, servers, and routers in a network topology. Representing these kinds of data with a simple line chart showing numeric values changing over time does not provide nearly enough information to capture the complex nature and relationships of the changing data.
Thus, without a better to way to illustrate how data changes over time, users will continue to be frustrated in understanding and interpreting their data.